import { Keyword } from "../../models/keyword";
const keyword = new Keyword();
import { BookModel } from "../../models/book";
const bookModel = new BookModel();
Component({
  /**
   * 组件的属性列表
   */
  properties: {
    topMore:{
      type:Number,
      //属性值被更改时的响应函数
      //当向上或向下时，触发那个函数就会执行这个pull、bottom函数
      //下面的方法中有这个地方的响应函数
      observer:"onPull",
    },
    bottomMore:{
      type:Number,
      observer:"onBottom"
    }
  },

  /**
   * 组件的初始数据
   */
  data: {
    words: [],
    hots: [],
    books:[],
    isSearch:false,
    /* 给输入框默认值 */
    value:"",
    /* 定义搜索是否为空 */
    isResult:false,
    loading:false,
    isClear:false
  },

  /**
   * 组件的方法列表
   */
  methods: {
    onPull(){
      this.setData({
        books:[]
      })
      bookModel.getBookSearch(0,this.data.value).then(res=>{
        this.setData({
          books:res.books
        })
      })
    },
    onBottom(){
      const start = this.data.books.length;
       let value = this.data.value;
       bookModel.getBookSearch(start,value).then(res=>{
         this.data.books.push(...res.books);
         this.setData({
           books:this.data.books
         })
       })
    },
    /* onConfirm当输入框回车后 */
    onConfirm(event) {
      wx.showLoading({
        title:"加载数据中"
      })
      let value = event.detail.value;
      /* 只有在服务器上能搜到的关键词才能添加到缓存中 */
      bookModel.getBookSearch(0, value).then(res => {
        console.log(res);
        if (res.total) { //搜到的时候：
          keyword.addHistory(value);
          let words = keyword.getHistory();
          this.setData({
            words,
            books:res.books,
            isSearch:true,
            // isResult——是否显示没有图书的提示
            isResult:false,
            value,
            //加载更多数据时，下面需要total
            total:res.total
          })
          wx.hideLoading();
        }else{  //搜不到的时候：
          wx.showToast({
            title: '哦豁！木有啊！！再试试？',
            icon: 'none'
          })
          this.setData({
            isSearch:true,
            // isResult——是否显示没有图书的提示
            isResult:true,
            value,
            books:[]
          })
        }
      })
    },
    /* 当点击叉叉时： */
    onClear(){
      this.setData({
        value:"",
        isSearch:false,
        books:[],
        isResult:false,
        isClear:false
      })
    },
    onScroll(){
      this._loadmore();
    },
    _loadmore(){
      /* 加载更多数据 */
      var start =this.data.books.length;
      var value = this.data.value;
      if(start < this.data.total){
        this.setData({
          loading:true
        })
        bookModel.getBookSearch(start,value).then(res =>{
          
          let arr = this.data.books.concat(res.books);
          this.setData({
            books:arr,
            loading:false
          })
        })
      }
    },
    onCancel(){
      /* navigateTo是无法跳转的   */
      wx.switchTab({
        url: '/pages/book/book',
      })
  },
  onInput(event){
    const value = event.detail.value;
    if(value){
      this.setData({
      isClear:true
    })
    }else{
      this.setData({
        isClear:false
      })
    }
  }
  },

  //在实例进入页面节点树时执行这些函数
  attached() {
    this.setData({
      words: keyword.getHistory()
    })
    keyword.getHotData().then(res => {
      this.setData({
        hots: res.hot
      })
    })
  }
})
